package com.example.aidocengine.service;

import com.example.aidocengine.pojo.entity.PrimaryDeviceTerminology;
import com.example.aidocengine.pojo.entity.SecondaryDeviceTerminology;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface TerminologyImportService {
    
    /**
     * 导入术语库Excel文件
     */
    void importTerminologyLibrary(MultipartFile file);
    
    /**
     * 刷新术语缓存
     */
    void refreshTerminologyCache();
    
    /**
     * 获取二次设备术语列表
     */
    List<SecondaryDeviceTerminology> getSecondaryTerms();
    
    /**
     * 获取一次设备术语列表
     */
    List<PrimaryDeviceTerminology> getPrimaryTerms();
    
    /**
     * 获取一次设备术语层级结构列表
     */
    List<PrimaryDeviceTerminology> getPrimaryTermsHierarchy();
    
    /**
     * 获取设备类型列表(父记录)
     */
    List<PrimaryDeviceTerminology> getDeviceTypes();
    
    /**
     * 根据父ID获取编写原则列表(子记录)
     */
    List<PrimaryDeviceTerminology> getPrinciplesByParentId(Long parentId);
    
    /**
     * 获取标记删除的一次设备术语列表
     */
    List<PrimaryDeviceTerminology> getDeletedPrimaryTerms();
    
    /**
     * 保存二次设备术语
     */
    SecondaryDeviceTerminology saveSecondaryTerm(SecondaryDeviceTerminology term);
    
    /**
     * 保存一次设备术语
     */
    PrimaryDeviceTerminology savePrimaryTerm(PrimaryDeviceTerminology term);
    
    /**
     * 删除二次设备术语
     */
    void deleteSecondaryTerm(Long id);
    
    /**
     * 删除一次设备术语
     */
    void deletePrimaryTerm(Long id);
}